System and Method for Virtualized Shared Use Environment with Dynamic IP Address Injection

ABSTRACT

Virtualized Shared Use Environment—database driven selector of specific a) company software, b) equipment location, and c) peripherals available. The selected elements together create a Virtualized Hypercart (VH) which carries all the variable elements necessary to select the appropriate running virtual machine. Derived from the above information, the system control software (SCS) selects from a table of available virtual machines that match the requirements of company software, equipment location, peripherals available and from the company software selection, the IP addressing schemes required and available for use by the virtual machine. Dynamic IP Address Injection—based on the VH, the IP addressing scheme is injected into the virtual machine that contains the appropriate company software for the type of location that made the request with the peripherals available for use by the virtual machine.

BACKGROUND OF THE INVENTION

1. Field of Invention

The present invention is generally related to shared or common use systems where multiple types of software operate on virtual machines that are managed by system control software.

2. Description of Related Art

Common use systems have been available in the airport/airline industry for a number of years. It is only in recent history that the technology has caught up to enable the creation of a truly dynamic shared use environment.

Common use architectures required middleware to wrap around and control the airline software. Localized hardware contained images of the middleware wrapped airline software on a partition on the hard drive. Upon a request from an operator, the partition containing the software combination would boot and become an active session. The operator was required to wait for the boot to initialize the operating system then the particular company (airline) software. All peripherals were controlled by the middleware including but not limited to printers, MCR/OCR readers, magnetic stripe readers, bar code readers, boarding pass printers, ticket printers and baggage tag printers. The amount of time required to initiate a session in this configuration took several minutes.

Common use terminal equipment (CUTE) systems also required certification by the middleware vendors to validate that the airline software would operate in their middleware controlled environment. This common environment required airlines to both write their code to satisfy the middleware vendors as well as pay those same vendors to certify their software for use on the vendors' system middleware.

With the advent of shared use systems, the system control software was not required to wrap an airline application and therefore certification was not necessary. If the airline application operated in their native environment on their own local area networks (LAN), then the application would run in a shared use environment without modification. Unfortunately, these early shared use environments required boot partitions similar to the older common use systems.

With the advent of virtual machines, shared use systems can now reach their peak efficiency by creating virtual machines of the appropriate company software based on time-of-day requirements. Shared use in a virtualized environment will make the company software available near instantaneously without having to wait for the edge computing device to switch partitions and boot. Dynamically injecting the IP addressing into the virtual machine enables any edge computing device to serve any company without the issue of a limited number of company IP addresses available.

SUMMARY OF THE INVENTION

Embodiments of the present invention provide a solution that fosters a shared use environment that has virtual machines available through the network on multiple servers that are available to operators near instantaneously once the company software is selected and the user is validated to operate that software.

In one embodiment, the present invention is implemented using system control software that controls the virtual machines and which software configurations are running on them as well IP addressing control and hardware location management.

In one embodiment, a selection of available company software is offered to the operator.

In one embodiment, system control software will initiate the appropriate number of virtual machines running company/location combinations based on time-of-day requirements based on the Resource Management System of the software control system which contains the schedule of hardware requirements.

In one embodiment, once software is selected, the system control software creates a virtualized hypercart which contains the company software selected, the MAC address of the hardware of the edge computing device on which the selection was made then retrieves the IP addressing scheme based those two attributes.

In one embodiment, a session ID is created to track the primary and secondary virtual machines operating the appropriate company/location software combination.

In one embodiment, the dynamically retrieved IP addressing scheme is injected into the primary and secondary virtual machines.

In one embodiment, both the primary and secondary virtual machines are switched into the company's VLAN through the network interface card (NIC) controller on the servers housing the virtual machine pool.

In one embodiment, corruption of a primary virtual machine initiates the promotion of the secondary virtual machine to primary; the spawning of a new secondary machine to mirror the primary virtual machine and a tear down of the faulty virtual machine to an available state.

In one embodiment, corruption of a secondary virtual machine initiates the spawning of a new secondary machine to mirror the primary virtual machine and a tear down of the faulty virtual machine to an available state.

In one embodiment, an edge computing device requiring replacement triggers the need for maintenance personnel to correct the location table the system control software relies upon to differentiate where the edge computing device is in the environment.

In one embodiment, when companies need to update/upgrade their software, they can update the master copy through their VLAN at any time. The system control software will detect the software change and file an image of the new software from which future virtual machines are spawned.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing a menu of company software choices on an edge computing device.

FIG. 2 is a diagram showing the selected instruction set transmitted through the local area network to the system control software.

FIG. 3 is a diagram showing the system control software conversing with several database tables to determine the appropriate virtual machine for the request.

FIG. 4 is a diagram showing the IP injection into the virtual machine resulting in a connection to the company's virtual local area network through the network backplanes of the affected servers.

FIG. 5 is a diagram showing the edge computing device taking on the characteristics of a Company 1 software controlling device.

FIG. 6 is a diagram showing the system control software ensuring a minimum number of virtual machines is running and available for the next request.

FIG. 7 is a diagram showing a request from the edge computing device to terminate the session with Company 1.

FIG. 8 is a diagram showing the system control software uncoupling the session from Company 1 and making the resources available for the next session request.

FIG. 9 is a diagram showing the session returned to a static state awaiting session selection.

FIG. 10 is a diagram showing the virtual machines returned to the available pool.

FIG. 11 is a diagram showing the system control software checking the virtual machine counts to ensure at least one instance of the company/location is running and available.

FIG. 12 is a diagram showing a failure of the primary session of a virtual machine and its recovery to a new virtual machine.

FIG. 13 is a diagram showing a failure of the secondary session of a virtual machine and its recovery to a new virtual machine.

FIG. 14 is a diagram showing the changes to machine addressing tables when an edge computing device is swapped out due to failure/upgrade/replacement.

FIG. 15 is a diagram showing the update/upgrade path of software from Company 1.

FIG. 16 is a diagram showing the system control software checking the active software to the stored image to ensure synchronicity.

DETAILED DESCRIPTION OF THE INVENTION

The following example embodiments and their aspects are described and illustrated in conjunction with apparatuses, methods, and systems which are meant to be illustrative examples, not limiting in scope.

Menu Presentation—FIG. 1 depicts a menu 070 of company software available to run from edge computing device 010. Selection of the software by the operator will be transmitted to the system control software through the local area network (LAN).

Virtual Machine Selection—In FIG. 2, the instruction set 075 is sent from edge computing device 010 through LAN 100 to the system control software running on a virtual machine 310 running on server 210. Upon receiving the instruction set, the system control software (SCS) running on a virtual machine 310 shown in FIG. 3 performs a number of operations. First the SCS queries the Equipment Location MAC Address Table 440 to determine the location type of the edge computing device 010 Using the MAC address from instruction set 075. Second, the SCS queries IP Address Table 450 using the company identified from instruction set 075 along with the location type determined in the previous step to retrieve an IP address. If the IP address scheme is dynamic, the SCS will query the DHCP server of the company associated with the request to pull an IP address and store that IP address in IP Address Table 450. Third, the SCS randomly generates a session ID 530, checks to ensure the session ID is not a duplicate of an active session and then assigns the session ID into the record in the IP Address Table 450 where the IP address originated. Fourth, the SCS queries the VM Assignment Table 460 for an existing primary and secondary virtual machine sessions that are running the software from instruction set 075 and the location type from a previous step. Once located, the SCS will assign the session ID 530 into the records representing the virtual machines that met the criteria above.

IP Address Injection—In FIG. 4, the SCS will take the IP address pulled from IP Address Table 450 (or derived from the company DHCP server) and inject it into the virtual machines in 300 and 320. This connects the primary and secondary virtual machines to the virtual local area network of Company1 110 and through a router back to the Company1's corporate network. The SCS completes the transformation of the edge computing device by connecting it to the virtual machines through the local area network 100 and to edge computing device 010 shown in FIG. 5.

Maintenance of Virtual Machines—After assigning the virtual machine pair to the control of the edge computing device 010 in FIG. 5, the SCS running on virtual machines 310 shown in FIG. 6 will check the VM Assignment Table 460 based on instruction 090 to ensure that at least one primary and secondary session of company and location just assigned exists and is available for assignment. If no sessions exist with that company and location combination, then the SCS will retrieve the software from the Software Image Table 430, start up two virtual machines with the software image based on the availability determined from the VM Assignment Table 460. The VM Assignment Table will have the new primary and secondary session marked with the company and location combination. This process of creating newly available virtual machines with the company and location combination is referred to as “spawning sessions.” If more than zero instances of that company and location combination exist, no spawning will occur.

Session Termination—When the operator using the edge equipment 010 requests the release of the company software in instruction 085 as depicted in FIG. 7, the SCS executes a number of instructions to disassemble the sessions and return the virtual machines to a static state. In FIG. 8, the SCS running on a virtual machine 310 identifies the session ID from the VM Assignment Table 460 based on the virtual machine processing the termination request. The session ID is cleared from the VM Assignment Table 460 but is stored as a variable along with the virtual session locations by the SCS to continue the session termination process. The session ID variable is used to locate the record in the IP Address Table 450 and the status of the record is set to available and the session ID is cleared. The virtual machines located using the virtual session location variables shown in FIG. 10 are returned to a static state. Edge computing device 010 is disconnected from the session and returned to a static state as shown in FIG. 9. The menu on edge computing device 010 will again show the menu 070 from FIG. 1. The last task for the SCS in 310 from FIG. 8 is to determine that at least one session of the company and location that just terminated exists in VM Assignment Table 460 or if a session pair requires spawning as outlined in D. above.

Resource Management System—The SCS running on a virtual machine 310 in FIG. 11 periodically checks (Command 095) with the Time of Day Session Table 470 to ensure a number of sessions are available based on the company and time of day. The resource management subsystem of the SCS checks the number of available sessions running based on the VM Assignment Table 460 and spawns the correct number of session pairs (primary and secondary) based on projected need which is a function of time based requirements. If Company 1 requires a minimum of four operating positions by 4:30 AM, then the SCS will ensure that at least that number of sessions exist and if not, spawn them into existence using the software images stored in the Software Image Table 430. Spawning of the appropriate session(s) will occur as outlined in D. above.

Primary Session Failure—Recovery—In FIG. 12, the primary virtual machine circled in 310 no longer responds to queries from its secondary virtual machine session pair circled in 300. The SCS in 310 will control the following process. SCS will promote the secondary virtual machine in 300 to primary as shown in 600. Next, the SCS will have a duplicate secondary virtual machine 620 that matches the primary in an available virtual machine which is determined from selecting an available virtual machine in VM Assignment Table 460 shown in FIG. 11. The duplication will include the IP address being injected into the new session. Lastly, the SCS will clear the failed virtual machine 610 and make that virtual machine available in the VM Assignment Table 460 shown in FIG. 11.

Secondary Session Failure—Recovery—In FIG. 13, the secondary virtual machine circled in 300 no longer responds to queries from its primary virtual machine session pair circled in 310. The SCS in 310 will control the following process. The SCS will have a duplicate secondary virtual machine 620 that matches the primary in an available virtual machine which is determined from selecting an available virtual machine in VM Assignment Table 460 shown in FIG. 11. The duplication will include the IP address being injected into the new session. Lastly, the SCS will clear the failed virtual machine and make that virtual machine available 600 in the VM Assignment Table 460 shown in FIG. 11.

Maintenance of Edge Computing Device—In FIG. 14, after an edge computing device 040 has been replaced due to upgrade, failure or off-line maintenance, the field engineer must correct the Equipment Location MAC Address Table 440 to record the MAC address of the new edge computing device as shown in the revised Equipment Location MAC Address Table 445. The new edge computing device will boot to the menu 070 displayed in A. above.

Maintenance of Company Software Images—In FIG. 15, Company 1 from their servers 910 pushes down a replacement image to their image software virtual machine 300. As part of its operating instructions, the SCS 310 periodically checks the software image 300 from FIG. 16 with the software image table 430 to ensure they are identical. If not, the software image 300 overlays the stored software image 430. Each subsequent virtual machine for Company 1 will spawn from the software image 430. 

What is claimed is:
 1. A system for use by multiple operators using a variety of different company software over the same hardware; hardware locations are stored in a database to pair with the company software; the hardware is controlled by time phased virtualized machine sessions; active virtualized machine sessions receive a dynamic IP address injected into its virtual machine based on the location of the edge computing device and the company selecting its software; a session ID is randomly generated to aid the tracking of the virtual machines; tracking virtual machine sessions both primary and secondary; tracking IP addressing based on company's addressing standards; spawning virtual machine sessions based on time-of-day volume requirements; spawning virtual machine sessions based on last instance of company/location combination used and time-of-day volume requirements; company accessing its corporate VLAN via the server's network card interface (NIC) backplane and the IP address injected into the virtual machine; error correction and recover from a primary virtual machine failure; error correction and recovery from a secondary virtual machine failure; virtual machine returned to pool upon termination of session by operator; hardware replacements necessitate the need to record the machine address code (MAC address) within the database; software updates are made by the company on an as needed basis.
 2. A method of claim 1 wherein a presentation of a selection system that offers the operator an option of multiple types of software based on the company the operator is employed. The operator will select his/her company as the software of choice. (Build up phase)
 3. A method of claim 1 further the selection of the company's software triggers the delivery of multiple variables (virtual hypercart) to the system control software: software requested, machine address control address (MAC address) of the edge equipment making the request which denotes equipment location and the peripherals available to the edge equipment making the request (serial or USB devices attached physically or logically to the equipment).
 4. A method of claim 1 wherein the IP addressing scheme the company uses from a database (static or dynamic addressing) is determined.
 5. A method of claim 1 further comprising system control software searches several database tables to retrieve an available appropriate IP addressing scheme for the company requesting the virtual machine session.
 6. A method of claim 1 further comprising system control software updates to the IP address database table for that company as IP address issued and generates a random session ID which is also stored in the table for this IP address.
 7. A method of claim 1 further comprises system control software searches a database table for available virtual machines running with the required configuration that matches company software, location type and peripherals required. System control software marks this virtual machine as issued with the session ID from claim 6 as well as its mirrored virtual machine running on another server.
 8. A method of claim 1 further comprises system control software injecting the IP address retrieved in claim 3 into the virtual machine and binds it to the company's Virtual Local Area Network running through the server's Network Interface Card (NIC) backplane.
 9. A method of claim 1 Operator uses company software until the session is no longer required where by operator selects to terminate session. (Tear down phase)
 10. A method of claim 1 further comprises system control software selecting the IP address from IP addressing table and makes it available for another session and removes the session ID from claim
 6. 11. A method of claim 1 further comprises system control software tearing down the primary and mirrored virtual machine sessions and makes both virtual machines available for use. (company independent)
 12. A method of claim 1 wherein system control software directs the edge equipment to produce the company software selection menu. (static state)
 13. A method of claim 1 further comprises a check of the virtual machine database during the tear down phase to ensure that at least one instance of the virtual machine pair with the company/location type exists or the system control software will spawn a new pair onto available virtual machine determined from the virtual machine database.
 14. A method of claim 1 further comprises system control software querying the Resource Manager (a database which contains usage requirements based on time-of-day) at regular intervals which controls the number of virtual machines running and available for each company/location type based on scheduled time-of-day volume expected of the company.
 15. A method of claim 1 wherein the corruption of the primary virtual machine (secondary [mirror] virtual machine fails to detect presence of primary virtual machine) will promote the secondary virtual machine to primary virtual machine and a) spawn a new secondary virtual machine mirror, b) locate and tear down the previous primary virtual machine, and c) modify the tables of the locations of the primary, secondary and newly available virtual machines.
 16. A method of claim 1 wherein the corruption of the secondary [mirror] virtual machine (primary virtual machine fails to detect presence of secondary virtual machine) will a) spawn a new secondary virtual machine mirror, b) locate and tear down the previous secondary virtual machine, and c) modify the tables of the locations of the secondary and newly available virtual machines.
 17. A method of claim 1 wherein replacing equipment that is available to the operator requires updating the location tables with the new MAC address number so that the appropriate virtual machine session will be bound to the correct edge hardware when company software is selected from that location.
 18. A method of claim 1 further comprises the maintenance of company software that is executed in one or more of the virtual machine sessions are available to the company for upgrade or replacement anytime. Upgrades pushed down to the server will then be compared at regular intervals with the back-up image of the software and, if different, will replace the back-up image with the new company software. 